Software defined networking (SDN) decouples traffic management (i.e., the control plane) from traffic forwarding (i.e., the data plane). In the control plane, SDN manages the network resources (e.g., how to use them) and controls network traffic flows (e.g., where to send them) jointly by a central SDN controller. Traffic flows have diversified Quality of Experience (QoE) and Quality of Service (QoS) requirements (e.g., rate, delay, delay jitter, outage, buffering time, etc.), depending on their nature (e.g., video) and/or application (e.g., video conferencing or downloading, etc.). The SDN controller has the responsibility to engineer traffic, that is, to plan routes for traffic flows and allocate resources (e.g., capacity, spectrum, power, etc.) along the routes, jointly so that their QoE/S requirements are met efficiently and effectively. This is normally an optimization problem.
Currently, the SDN traffic engineering (TE) optimization problem is solved by a central SDN controller. Supporting information is collected at the SDN controller. For example, nodes report their status (e.g., loading, resource availability, resource quality, coverage, etc.) and their incidental links status (e.g., remaining capacity, buffer size, spectral efficiency (SE), etc.). The computation logic for the TE optimization problem is executed at the SDN controller and provisioning is made by the SDN controller. The SDN controller delivers TE's resource allocation decision to the related nodes.
However, fully centralized TE implies hardware complexity, high communication overhead, and provisioning delay. The SDN controller needs powerful computing module to handle the large-scale optimization; otherwise, the computational capability limitations of the SDN controller would cause large computation delay. Furthermore, global information collection and provisioning occupy a large bandwidth and incur large end-to-end network delays. Therefore, improved systems and methods for TE optimization in SDN is desirable.